package com.jrx.anytxn.param.dto.partner;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

public class PartnerShareProfitReq{
    /**
     * 自增主键
     * 表字段:id
     */
    private Long id;

    /**
     * 租户ID
     * 表字段:tenant_id
     */
    private String tenantId;

    /**
     * 分润参数id
     * 表字段:share_profit_id
     */
    private String shareProfitId;

    /**
     * 机构号
     * 表字段:organization_id
     */
    private String organizationId;

    /**
     * 说明
     * 表字段:share_profit_desc
     */
    private String shareProfitDesc;

    /**
     * 生效标识 0 否 1 是
     * 表字段:valid_status
     */
    private String validStatus;

    /**
     * 上次分润日期
     * 表字段:last_share_date
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date lastShareDate;

    /**
     * 下一分润日期
     * 表字段:next_share_date
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date nextShareDate;

    /**
     * 分润频率 0 日 1周 2月
     * 表字段:share_unit
     */
    private String shareUnit;

    /**
     * 利息分润方式 0 固定值 1 百分比
     * 表字段:interest_share_unit
     */
    private String interestShareUnit;

    /**
     * 利息分润值
     * 表字段:interest_share_value
     */
    private BigDecimal interestShareValue;

    /**
     * 分期手续费分润方式 0 固定值 1 百分比
     * 表字段:installment_fee_share_unit
     */
    private String installmentFeeShareUnit;

    /**
     * 分期手续费分润值
     * 表字段:installment_fee_share_value
     */
    private BigDecimal installmentFeeShareValue;

    /**
     * 提前还款手续费分润方式 0 固定值 1 百分比
     * 表字段:prepay_fee_share_unit
     */
    private String prepayFeeShareUnit;

    /**
     * 提前还款手续费分润值
     * 表字段:prepay_fee_share_value
     */
    private BigDecimal prepayFeeShareValue;

    /**
     * 罚息分润方式 0 固定值 1 百分比
     * 表字段:penalty_share_unit
     */
    private String penaltyShareUnit;

    /**
     * 罚息分润值
     * 表字段:penalty_share_value
     */
    private BigDecimal penaltyShareValue;

    /**
     * 复利分润方式 0 固定值 1 百分比
     * 表字段:compound_share_unit
     */
    private String compoundShareUnit;

    /**
     * 复利分润值
     * 表字段:compound_share_value
     */
    private BigDecimal compoundShareValue;

    /**
     * 提前结清手续费分润方式 0 固定值 1 百分比
     * 表字段:preoff_fee_share_unit
     */
    private String preoffFeeShareUnit;

    /**
     * 提前结清手续费分润值
     * 表字段:preoff_fee_share_value
     */
    private BigDecimal preoffFeeShareValue;

    /**
     * 创建时间
     * 表字段:create_time
     */
    private Date createTime;

    /**
     * 最后更新时间
     * 表字段:update_time
     */
    private Date updateTime;

    /**
     * 最后更新操作员
     * 表字段:update_by
     */
    private String updateBy;

    /**
     * 记录版本号
     * 表字段:record_version_number
     */
    private Integer recordVersionNumber;

    /**
     * 获取自增主键
     * @return id Long
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置自增主键
     * @param id 自增主键
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取租户ID
     * @return tenantId String
     */
    public String getTenantId() {
        return tenantId;
    }

    /**
     * 设置租户ID
     * @param tenantId 租户ID
     */
    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    /**
     * 获取分润参数id
     * @return shareProfitId String
     */
    public String getShareProfitId() {
        return shareProfitId;
    }

    /**
     * 设置分润参数id
     * @param shareProfitId 分润参数id
     */
    public void setShareProfitId(String shareProfitId) {
        this.shareProfitId = shareProfitId;
    }

    /**
     * 获取机构号
     * @return organizationId String
     */
    public String getOrganizationId() {
        return organizationId;
    }

    /**
     * 设置机构号
     * @param organizationId 机构号
     */
    public void setOrganizationId(String organizationId) {
        this.organizationId = organizationId;
    }

    /**
     * 获取说明
     * @return shareProfitDesc String
     */
    public String getShareProfitDesc() {
        return shareProfitDesc;
    }

    /**
     * 设置说明
     * @param shareProfitDesc 说明
     */
    public void setShareProfitDesc(String shareProfitDesc) {
        this.shareProfitDesc = shareProfitDesc;
    }

    /**
     * 获取生效标识 0 否 1 是
     * @return validStatus String
     */
    public String getValidStatus() {
        return validStatus;
    }

    /**
     * 设置生效标识 0 否 1 是
     * @param validStatus 生效标识 0 否 1 是
     */
    public void setValidStatus(String validStatus) {
        this.validStatus = validStatus;
    }

    /**
     * 获取上次分润日期
     * @return lastShareDate Date
     */
    public Date getLastShareDate() {
        return lastShareDate;
    }

    /**
     * 设置上次分润日期
     * @param lastShareDate 上次分润日期
     */
    public void setLastShareDate(Date lastShareDate) {
        this.lastShareDate = lastShareDate;
    }

    /**
     * 获取下一分润日期
     * @return nextShareDate Date
     */
    public Date getNextShareDate() {
        return nextShareDate;
    }

    /**
     * 设置下一分润日期
     * @param nextShareDate 下一分润日期
     */
    public void setNextShareDate(Date nextShareDate) {
        this.nextShareDate = nextShareDate;
    }

    /**
     * 获取分润频率 0 日 1周 2月
     * @return shareUnit String
     */
    public String getShareUnit() {
        return shareUnit;
    }

    /**
     * 设置分润频率 0 日 1周 2月
     * @param shareUnit 分润频率 0 日 1周 2月
     */
    public void setShareUnit(String shareUnit) {
        this.shareUnit = shareUnit;
    }

    /**
     * 获取利息分润方式 0 固定值 1 百分比
     * @return interestShareUnit String
     */
    public String getInterestShareUnit() {
        return interestShareUnit;
    }

    /**
     * 设置利息分润方式 0 固定值 1 百分比
     * @param interestShareUnit 利息分润方式 0 固定值 1 百分比
     */
    public void setInterestShareUnit(String interestShareUnit) {
        this.interestShareUnit = interestShareUnit;
    }

    /**
     * 获取利息分润值
     * @return interestShareValue BigDecimal
     */
    public BigDecimal getInterestShareValue() {
        return interestShareValue;
    }

    /**
     * 设置利息分润值
     * @param interestShareValue 利息分润值
     */
    public void setInterestShareValue(BigDecimal interestShareValue) {
        this.interestShareValue = interestShareValue;
    }

    /**
     * 获取分期手续费分润方式 0 固定值 1 百分比
     * @return installmentFeeShareUnit String
     */
    public String getInstallmentFeeShareUnit() {
        return installmentFeeShareUnit;
    }

    /**
     * 设置分期手续费分润方式 0 固定值 1 百分比
     * @param installmentFeeShareUnit 分期手续费分润方式 0 固定值 1 百分比
     */
    public void setInstallmentFeeShareUnit(String installmentFeeShareUnit) {
        this.installmentFeeShareUnit = installmentFeeShareUnit;
    }

    /**
     * 获取分期手续费分润值
     * @return installmentFeeShareValue BigDecimal
     */
    public BigDecimal getInstallmentFeeShareValue() {
        return installmentFeeShareValue;
    }

    /**
     * 设置分期手续费分润值
     * @param installmentFeeShareValue 分期手续费分润值
     */
    public void setInstallmentFeeShareValue(BigDecimal installmentFeeShareValue) {
        this.installmentFeeShareValue = installmentFeeShareValue;
    }

    /**
     * 获取提前还款手续费分润方式 0 固定值 1 百分比
     * @return prepayFeeShareUnit String
     */
    public String getPrepayFeeShareUnit() {
        return prepayFeeShareUnit;
    }

    /**
     * 设置提前还款手续费分润方式 0 固定值 1 百分比
     * @param prepayFeeShareUnit 提前还款手续费分润方式 0 固定值 1 百分比
     */
    public void setPrepayFeeShareUnit(String prepayFeeShareUnit) {
        this.prepayFeeShareUnit = prepayFeeShareUnit;
    }

    /**
     * 获取提前还款手续费分润值
     * @return prepayFeeShareValue BigDecimal
     */
    public BigDecimal getPrepayFeeShareValue() {
        return prepayFeeShareValue;
    }

    /**
     * 设置提前还款手续费分润值
     * @param prepayFeeShareValue 提前还款手续费分润值
     */
    public void setPrepayFeeShareValue(BigDecimal prepayFeeShareValue) {
        this.prepayFeeShareValue = prepayFeeShareValue;
    }

    /**
     * 获取罚息分润方式 0 固定值 1 百分比
     * @return penaltyShareUnit String
     */
    public String getPenaltyShareUnit() {
        return penaltyShareUnit;
    }

    /**
     * 设置罚息分润方式 0 固定值 1 百分比
     * @param penaltyShareUnit 罚息分润方式 0 固定值 1 百分比
     */
    public void setPenaltyShareUnit(String penaltyShareUnit) {
        this.penaltyShareUnit = penaltyShareUnit;
    }

    /**
     * 获取罚息分润值
     * @return penaltyShareValue BigDecimal
     */
    public BigDecimal getPenaltyShareValue() {
        return penaltyShareValue;
    }

    /**
     * 设置罚息分润值
     * @param penaltyShareValue 罚息分润值
     */
    public void setPenaltyShareValue(BigDecimal penaltyShareValue) {
        this.penaltyShareValue = penaltyShareValue;
    }

    /**
     * 获取复利分润方式 0 固定值 1 百分比
     * @return compoundShareUnit String
     */
    public String getCompoundShareUnit() {
        return compoundShareUnit;
    }

    /**
     * 设置复利分润方式 0 固定值 1 百分比
     * @param compoundShareUnit 复利分润方式 0 固定值 1 百分比
     */
    public void setCompoundShareUnit(String compoundShareUnit) {
        this.compoundShareUnit = compoundShareUnit;
    }

    /**
     * 获取复利分润值
     * @return compoundShareValue BigDecimal
     */
    public BigDecimal getCompoundShareValue() {
        return compoundShareValue;
    }

    /**
     * 设置复利分润值
     * @param compoundShareValue 复利分润值
     */
    public void setCompoundShareValue(BigDecimal compoundShareValue) {
        this.compoundShareValue = compoundShareValue;
    }

    /**
     * 获取提前结清手续费分润方式 0 固定值 1 百分比
     * @return preoffFeeShareUnit String
     */
    public String getPreoffFeeShareUnit() {
        return preoffFeeShareUnit;
    }

    /**
     * 设置提前结清手续费分润方式 0 固定值 1 百分比
     * @param preoffFeeShareUnit 提前结清手续费分润方式 0 固定值 1 百分比
     */
    public void setPreoffFeeShareUnit(String preoffFeeShareUnit) {
        this.preoffFeeShareUnit = preoffFeeShareUnit;
    }

    /**
     * 获取提前结清手续费分润值
     * @return preoffFeeShareValue BigDecimal
     */
    public BigDecimal getPreoffFeeShareValue() {
        return preoffFeeShareValue;
    }

    /**
     * 设置提前结清手续费分润值
     * @param preoffFeeShareValue 提前结清手续费分润值
     */
    public void setPreoffFeeShareValue(BigDecimal preoffFeeShareValue) {
        this.preoffFeeShareValue = preoffFeeShareValue;
    }

    /**
     * 获取创建时间
     * @return createTime Date
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置创建时间
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取最后更新时间
     * @return updateTime Date
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置最后更新时间
     * @param updateTime 最后更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取最后更新操作员
     * @return updateBy String
     */
    public String getUpdateBy() {
        return updateBy;
    }

    /**
     * 设置最后更新操作员
     * @param updateBy 最后更新操作员
     */
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    /**
     * 获取记录版本号
     * @return recordVersionNumber Integer
     */
    public Integer getRecordVersionNumber() {
        return recordVersionNumber;
    }

    /**
     * 设置记录版本号
     * @param recordVersionNumber 记录版本号
     */
    public void setRecordVersionNumber(Integer recordVersionNumber) {
        this.recordVersionNumber = recordVersionNumber;
    }


}
